<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        * {
            box-sizing: border-box;
            margin: 0%;
            padding: 0%;
        }

        html,body {
            height: 200%;
            width: 100%;
            display: flex;
            flex-direction: column;
        }

        #main-body {
            height: 30%;
            width: 60%;
            margin: 20px auto;
            border: 1px solid black;
            display: flex;
            /* justify-content: space-between; */
            /* gap让子元素保持间距，比margin更加智能、方便，gap: 行，列; */
            gap: 10px;
        }

        .smallBox {
            flex: 1;
        }

        .smallBox:nth-child(odd) {
            background-color: blueviolet;
        }

        #box02 {
        /* 注意：只有%才是弹性的布局使其具备 缩放的能力，不能写死->用px */
            width: 80%;
            margin: 20px auto;
            border: 1px solid black;
            display: flex;
            flex-wrap: wrap;
        }

        .smallBox02 {
        /* flex的基本构成：flex-grow（定义元素剩余空间分配放大比例）+flex-shrink（定义元素剩余空间分配缩小比例）+flex-basis（定义元素在主轴方向上的初始大小） */
            /* 即为flex: 1;（flex: 1 1 0%;） */
            /* 0即为不进行拉伸与缩放 */
            flex: 0 0 20%;/* 100/5,此处没有剩余空间，所以上下调位置是可行的，但是左右调整位置会被挤下去 */
            /* 左右调整位置的话，可以参考淘宝官网的方式，用padding挤出左右缝隙，再逐个套小的div去展示效果。 */
            height: 120px;
        }

        .smallBox02:nth-child(odd) {
            background-color: cadetblue;
        }

        /* **关键**这样就可以让大盒子显示的时候没有边框的padding影响，效果与其他盒子对其 */
        .w {
            width: 80%;
            margin: 10px auto;
        }
        #bigbox {
            /* width: 80%; */
            /* margin: 10px auto; */
            border: 1px solid black;
            flex-wrap: wrap;
            display: flex;
            /* **关键**往左走4px，避免影响auto的属性 */
            margin-left: -4px;
            margin-right: -4px;
        }

        .smallol {
            height: 60px;
            flex: 0 0 20%;
            background-color: pink;
            /* 实现左右缝隙的关键 */
            padding: 4px 4px;
        }

        .smallol:nth-child(odd) {
            background-color: aquamarine;
        }

        .golo {
            height: 100%;
            width: 100%;
            background-color: black;
        }

        #jingdong {
            width: 80%;
            border: 1px solid black;
            margin: 0 auto;
            display: flex;
            flex-wrap: wrap;
        }

        .jingdongBox {
            /* 注意区别 */
            flex: 1;
            height: 80px;
            width: 120px;
            background-color: pink;
            /* 也可以实现换行 */
            /* min-width: 16.6666667%;
            max-width: 16.6666667%; */
            /* 使用会计算的函数：calc */
            min-width: calc(16.6666667% - 16px);
            max-width: calc(16.6666667% - 16px);
            /* 会被挤下来 */
            margin: 0 8px 16px;
        }

        #foot {
            width: 80%;
            height: 120px;
            background-color: black;
            margin: 0 auto;
        }
    </style>
    <title>单行伸缩与多行</title>
</head>
<body>
    <!-- 单行缩放 -->
    <main id="main-body">
        <div class="smallBox"></div>
        <div class="smallBox"></div>
        <div class="smallBox"></div>
        <div class="smallBox"></div>
    </main>

    <!-- 多行缩放 -->
    <div id="box02">
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
        <div class="smallBox02"></div>
    </div>

    <!-- 淘宝网页做法 -->
    <div class="w">
        <div id="bigbox">
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
        <div class="smallol">
            <div class="golo"></div>
        </div>
     </div>
    </div>

    <!-- 京东网页做法 -->
    <div id="jingdong">
       <div class="jingdongBox">1</div>
       <div class="jingdongBox">2</div>
       <div class="jingdongBox">3</div>
       <div class="jingdongBox">4</div>
       <div class="jingdongBox">5</div>
       <div class="jingdongBox">6</div>
       <div class="jingdongBox">7</div>
       <div class="jingdongBox">8</div>
       <div class="jingdongBox">9</div>
       <div class="jingdongBox">10</div>
       <div class="jingdongBox">11</div>
       <div class="jingdongBox">12</div>
       <div class="jingdongBox">13</div>
       <div class="jingdongBox">14</div>
       <div class="jingdongBox">15</div>
       <div class="jingdongBox">16</div>
    </div>

    <!-- 坐标参考 -->
    <div id="foot"></div>
</body>
</html>